import UIKit

@available(iOS 8.0, *)
extension QKC where AA :UIPresentationController {
    open func presentingViewController_qk_g() -> QKC<AA,YY,ZZ, UIViewController >{
		 self +^ self.value.presentingViewController
	}

    open func presentedViewController_qk_g() -> QKC<AA,YY,ZZ, UIViewController >{
		 self +^ self.value.presentedViewController
	}

    open func presentationStyle_qk_g() -> QKC<AA,YY,ZZ, UIModalPresentationStyle >{
		 self +^ self.value.presentationStyle
	}

	// This view is being passed to the animation controller.
    open func containerView_qk_g() -> QKC<AA,YY,ZZ, UIView? >{
		 self +^ self.value.containerView
	}

     open func delegate_qk_s(_ delegate:  UIAdaptivePresentationControllerDelegate?) -> QKC<AA,YY,ZZ, UIAdaptivePresentationControllerDelegate?>{
		return link(next: delegate).then_QK { $0.value.delegate = delegate }
	}
     open func delegate_qk_g() -> QKC<AA,YY,ZZ, UIAdaptivePresentationControllerDelegate?>{
		 self +^ self.value.delegate
	}

	// implementation for adaptivePresentationStyleForPresentationController:
    open func adaptivePresentationStyle_qk_g() -> QKC<AA,YY,ZZ, UIModalPresentationStyle >{
		 self +^ self.value.adaptivePresentationStyle
	}

	// (Default: presented view controller's view)
    open func presentedView_qk_g() -> QKC<AA,YY,ZZ, UIView? >{
		 self +^ self.value.presentedView
	}

	// (Default: container view bounds)
    open func frameOfPresentedViewInContainerView_qk_g() -> QKC<AA,YY,ZZ, CGRect >{
		 self +^ self.value.frameOfPresentedViewInContainerView
	}

	// (Default: YES)
    open func shouldPresentInFullscreen_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.shouldPresentInFullscreen
	}

	// (Default: NO)
    open func shouldRemovePresentersView_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.shouldRemovePresentersView
	}

	// Modifies the trait collection for the presentation controller.
     open func overrideTraitCollection_qk_s(_ overrideTraitCollection:  UITraitCollection?) -> QKC<AA,YY,ZZ, UITraitCollection?>{
		return link(next: overrideTraitCollection).then_QK { $0.value.overrideTraitCollection = overrideTraitCollection }
	}
     open func overrideTraitCollection_qk_g() -> QKC<AA,YY,ZZ, UITraitCollection?>{
		 self +^ self.value.overrideTraitCollection
	}

    @available(iOS 8.3, *)
    open func adaptivePresentationStyle_qk_f(for traitCollection: UITraitCollection) -> QKC<AA,YY,ZZ,UIModalPresentationStyle>{
		 self +^ self.value.adaptivePresentationStyle(for:traitCollection)
	}

    open func containerViewWillLayoutSubviews_qk_f() -> QKC<AA,YY,ZZ,Void>{
		 self +^ self.value.containerViewWillLayoutSubviews()
	}

    open func containerViewDidLayoutSubviews_qk_f() -> QKC<AA,YY,ZZ,Void>{
		 self +^ self.value.containerViewDidLayoutSubviews()
	}

    open func presentationTransitionWillBegin_qk_f() -> QKC<AA,YY,ZZ,Void>{
		 self +^ self.value.presentationTransitionWillBegin()
	}

    open func presentationTransitionDidEnd_qk_f(_ completed: Bool) -> QKC<AA,YY,ZZ, Bool>{
		 self +^ self.value.presentationTransitionDidEnd(completed) +^ completed
	}

    open func dismissalTransitionWillBegin_qk_f() -> QKC<AA,YY,ZZ,Void>{
		 self +^ self.value.dismissalTransitionWillBegin()
	}

    open func dismissalTransitionDidEnd_qk_f(_ completed: Bool) -> QKC<AA,YY,ZZ, Bool>{
		 self +^ self.value.dismissalTransitionDidEnd(completed) +^ completed
	}

}

